typedef struct
{
	CELLPOS pos;
	wstring* pContent;
	COLORREF bkColor;
	COLORREF txColor;
	UINT	 textHAlign;
	UINT	 textVAlign;
	UINT	 fontAttr;
	wstring* pFontName;
} CellDataItem;

class SheetController
{
public:
	SheetController();
	void ModifyContent(const CELLPOS& Pos, const wstring & Content);
	void GetSheetData(LinkedList<CellDataItem>& CellDataList);
	bool GetCellContent(const CELLPOS& pos, CellDataItem& item);
	void SetColWidth(COL_NUM iCol, int Width);
	void SetRowHeight(ROW_NUM iRow, int Height);
	void InsertRow(ROW_NUM iRow);
	void InsertCol(COL_NUM iCol);
	void RemoveRow(ROW_NUM iRow);
	void RemoveCol(COL_NUM iCol);
	void DeleteRegion(const CELLPOS& start, const CELLPOS& end);
	void CopyRegion(const CELLPOS& start, const CELLPOS& end);
	void CutRegion(const CELLPOS& start, const CELLPOS& end);
	void Paste(const CELLPOS& currentPos);
	void SetColor(const CELLPOS& start, const CELLPOS& end, const ModifiedField& mf, const COLORREF& col, bool clear = false);
	void SetAlign(const CELLPOS& start, const CELLPOS& end, const ModifiedField& mf, UINT aln);
	void SetFontAttr(const CELLPOS& start, const CELLPOS& end, const ModifiedField& mf, UINT attr);
	void SetFont(const CELLPOS& start, const CELLPOS& end, const ModifiedField& mf, PTSTR FontName, UINT attr);
private:
	Sheet* pSheet;
};